iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0

在細談 RISC-V 之前,我們先了解一下甚麼是 RISC ?

RISC & CISC

中央處理器 (CPU) 的設計大致可以分成兩類:精簡指令集電腦 (RISC) 和 複雜指令集電腦 (CISC) 。

CISC 多出現在早期的處理器設計,也許大家聽過 x86 這個名詞,他就是 CISC 的代表之一喔!而現今的處理器設計大多為 RISC ,如教科書介紹的 MIPS 、手機常用的 ARM 以及本次的主題 RISC-V 都屬於 RISC。

我們可能會很好奇,為什麼複雜的指令集出現在早期呢?因為早期的編譯器不發達,程式設計師大多直接使用組合語言或是機器語言來撰寫程式,為了方便他們撰寫程式,指令集的設計者就會把所有需要的指令都設計出來,漸漸的,處理器架構就越來越龐大。

更多種類的指令對我們來說不好嗎?因為 CISC 的指令長度通常不固定,在解碼時會花費大量的時間,因此 RISC 就出現了啦!再加上編譯器的發展已經相當進步,特殊用途指令的需求也不像過往如此需要了。

RISC 有一個重要的特色:指令長度相同。這使得其解碼時間可以大幅降低,同時也使得在管線化設計 (Pipeline) 較為容易。因此整體處理器所需的晶片面積較小,也較為省電。

RISC-V

RISC-V 是一個精簡指令集架構,於西元 2010 年由 UC Berkeley 開啟的一個專案。與 ARM, MIPS 等最大的不同是 RISC-V 為一個開源架構,因此當公司或是任何人在製造、販售時,不需要支付專利費用。

根據不同的需求,RISC-V 被分成多個子集,包含基本指令集和擴充指令集。

  • 基本指令集負責大部分的整數運算,依據所需的位元數,可以再細分成 RV32I, RV64I, RV128I。(RV32E, RV64E 為適合嵌入式系統的基本指令集)
  • 擴充指令集負責基本指令集外的運算,用生活中的詞彙來說就是「選配」。既然是選配,那就是根據需求來選擇,例如:整數乘除法(M)、單精度浮點數運算(F)、雙精度浮點數運算(D)、向量運算(V)等。

之所以把擴充指令集獨立出來,是因為使用者未必需要那麼多功能。如果將他置放在其中,會耗費很大量的晶片面積,且會耗費不必要的電。

在系列文中,我們要來學習怎麼實作 RISC-V 的晶片架構(以 RV32I 為主)。相信在看完系列文,大家對於 CPU 的設計會有更深的理解,也會更清楚「計算機組織」這門課程的脈絡。


下一篇
[Day 02] IC 設計流程
系列文
RISC-V CPU 設計與實作6
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言